#pragma once
#include "CDOCollection.h"

class CResourceDictionaryCollection :
	public CDOCollection
{

private: 
	CResourceDictionaryCollection(CCoreServices * pCore);
public: 
	static HRESULT Create(CDependencyObject * * ppObject, CREATEPARAMETERS * pCreate);
	virtual HRESULT Clear();
	virtual HRESULT OnAddToCollection(CDependencyObject * pDO);
	virtual HRESULT OnRemoveFromCollection(CDependencyObject * pDO, XINT32 iPreviousIndex);
	HRESULT SetResourceOwner(CDependencyObject * pResourceOwner);
	XBOOL HasImplicitStyle();
	HRESULT InvalidateImplicitStyles();
	XBOOL HasImplicitDataTemplate();
	virtual XBOOL ParticipatesInManagedTreeInternal();
	virtual XUINT32 GetTypeIndex() const;
private: 
	HRESULT ClearNoInvalidationOfImplicitStyles();
	CDependencyObject * m_pResourceOwner;
};
